
package Control;

import Database.ConexaoDB;
import Model.Secao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class Control_Secao {
    Connection con = new ConexaoDB().conectar();
    PreparedStatement pstm;
    ResultSet rs;
    
    String cadastraSecao = "INSERT INTO SECAO(SECAO_ID, SECAO_DESCRICAO) VALUES(0,?)";
    
    String alteraSecao = "UPDATE SECAO SET SECAO_DESCRICAO=? WHERE SECAO_ID=?";
     
    String excluiSecao = "DELETE FROM SECAO WHERE SECAO_ID=?";
    
    String consultaSecaoCodigo = "SELECT * FROM SECAO WHERE SECAO_ID LIKE ?";
    
    String consultaSecaoNome = "SELECT * FROM SECAO WHERE SECAO_DESCRICAO LIKE ?";
    
    String consultaSecaoTodosNome = "SELECT * FROM SECAO ORDER BY SECAO_DESCRICAO";
    
    String consultaSecaoTodosCodigo = "SELECT * FROM SECAO ORDER BY SECAO_ID";
    
      
    ConexaoDB BD = new ConexaoDB();
    
    
    public Control_Secao(){ }                                
    
    public void cadastrarSecao(Secao secao){
         try{
            pstm = BD.conectar().prepareStatement(cadastraSecao);
            pstm.setString(1, secao.getSecao_descricao());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public void alterarSecao(Secao secao){
         try{
            pstm = BD.conectar().prepareStatement(alteraSecao);
            pstm.setString(1, secao.getSecao_descricao());
            pstm.setInt(2, secao.getSecao_id());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public void excluirSecao(Secao secao){
         try{
            pstm = BD.conectar().prepareStatement(excluiSecao);
            pstm.setInt(1, secao.getSecao_id());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public java.util.List<Secao> listarSecaoCodigo(String codigo){
        java.util.List<Secao> secao = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaSecaoCodigo);
            pstm.setString(1, codigo);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Secao sec = new Secao();
                sec.setSecao_id(rs.getInt("secao_id"));
                sec.setSecao_descricao(rs.getString("secao_descricao"));
                secao.add(sec);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return secao;
    }
    
    public java.util.List<Secao> listarSecaoNome(String nome){
        java.util.List<Secao> secao = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaSecaoNome);
            pstm.setString(1, nome);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Secao sec = new Secao();
                sec.setSecao_id(rs.getInt("secao_id"));
                sec.setSecao_descricao(rs.getString("secao_descricao"));
                secao.add(sec);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return secao;
    }
    
    public java.util.List<Secao> listarSecaoTodosNome(){
        java.util.List<Secao> secao = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaSecaoTodosNome);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Secao sec = new Secao();
                sec.setSecao_id(rs.getInt("secao_id"));
                sec.setSecao_descricao(rs.getString("secao_descricao"));
                secao.add(sec);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return secao;
    }
    
    public java.util.List<Secao> listarSecaoTodosCodigo(){
        java.util.List<Secao> secao = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaSecaoTodosCodigo);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Secao sec = new Secao();
                sec.setSecao_id(rs.getInt("secao_id"));
                sec.setSecao_descricao(rs.getString("secao_descricao"));
                secao.add(sec);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return secao;
    } 
}
